package com.travel.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.travel.dto.TravelProductAddDTO;
import com.travel.dto.TravelProductPageDto;
import com.travel.dto.TravelProductUpdateDTO;
import com.travel.pojo.TravelProducts;
import com.travel.result.PageResult;
import com.travel.vo.ItineraryDayVo;
import com.travel.vo.PricingDetailVo;
import com.travel.vo.TravelProductBasicVo;
import com.travel.vo.TravelProductVo;

import java.util.List;

public interface TravelProductService extends IService<TravelProducts> {
    TravelProductBasicVo getBasicInfoWithAttractions(Integer productId);

    List<ItineraryDayVo> getItinerariesByDay(Integer productId);

    List<PricingDetailVo> getPricingDetails(Integer productId);

    List<String> getCarouselImages();

    Integer addTravelProduct(TravelProductAddDTO travelProductAddDTO);

    boolean updateTravelProduct(TravelProductUpdateDTO travelProductUpdateDTO);

    boolean deleteTravelProduct(Integer productId);

    TravelProductVo getProductWithRelations(Integer productId);

    PageResult getTravelProductList(TravelProductPageDto dto);


    List<Integer> getProductIds();
}
